package top.eggcode.base;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import top.eggcode.common.mvc.Result;

/**
 * Title: 基础控制器
 * Description: TODO
 * Date: 2021/5/30 13:08
 *
 * @author JiaQi Ding
 * @version 1.0
 */
public abstract class BaseController<T, Q> extends PackBaseController {

    Logger logger = LoggerFactory.getLogger(BaseController.class);

    /**
     * 获取实体
     *
     * @param id 编号
     * @return 响应模型
     */
    public abstract Result<?> get(String id);

    /**
     * 分页查询
     *
     * @param query 查询模型
     * @return 响应模型
     */
    public abstract Result<?> listPage(Q query);

    /**
     * 逻辑删除
     *
     * @param id 编号
     * @return 响应模型
     */
    public abstract Result<?> delete(String id);

    /**
     * 更新
     *
     * @param view 视图模型
     * @return 响应模型
     */
    public abstract Result<?> update(T view);

    /**
     * 添加
     *
     * @param view 视图
     * @return 响应模型
     */
    public abstract Result<?> add(T view);
}
